﻿using Itau.IM.Common.Mainframe.Book;
namespace Itau.IM.Carimbador.Contract
{
    /// <summary>
    /// Classe de resposta da operação ConsultarRegularComPrazo
    /// </summary>
    /// 
    [BookClass(31187)]
    public class ConsultarRegularComPrazoResponse
    {
        #region Propriedades

        [BookNumberField(1,8)]
        public int CodigoPrimeiraCurva { get; set; }

        [BookNumberField(9,8,10)]
        public double ValorTransferPrice { get; set; }
        
        [BookNumberField(27,8)]
        public int CodigoTerceiraCurva { get; set; }

        [BookNumberField(35,8,10)]
        public double ValorTransferPriceTerceiraCurva { get; set; }

        [BookNumberField(53,1)]
        public int FlagUtilizacaoCurvaDefault { get; set; }

        [BookNumberField(54,1)]
        public int CodigoTipoValor { get; set; }

        [BookStringField(55, 15)]
        public string NomeIndexador { get; set; }

        [BookObjectField(31001)]
        public ConsultarControle AreaControle { get; set; }

        public int CodigoRetorno { get { return AreaControle != null ? AreaControle.CodigoSQL : 0; } set { } }
        public string MensagemRetorno { get { return AreaControle != null ? AreaControle.Mensagem : null; } set { } }
        
        #endregion Propriedades

        #region Métodos

        public ConsultarRegularComPrazoResponse()
        {
        }

        public ConsultarRegularComPrazoResponse(int codigoRetorno_, 
            int flagUtilizacaoCurvaDefault_, 
            int codigoTipoValor_,
            int codigoPrimeiraCurva_,
            int codigoTerceiraCurva_,
            string mensagemRetorno_, 
            double valorTransferPrice_, 
            double valorTransferPriceTerceiraCurva_)
        {
            this.CodigoRetorno = codigoRetorno_;
            this.FlagUtilizacaoCurvaDefault = flagUtilizacaoCurvaDefault_;
            this.CodigoTipoValor = codigoTipoValor_;
            this.CodigoPrimeiraCurva = codigoPrimeiraCurva_;
            this.CodigoTerceiraCurva = codigoTerceiraCurva_;
            this.MensagemRetorno = mensagemRetorno_;
            this.ValorTransferPrice = valorTransferPrice_;
            this.ValorTransferPriceTerceiraCurva = valorTransferPriceTerceiraCurva_;
        }

        #endregion Métodos
    }
}